home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / telecomm / bbs / tbbs093.lha / Programmer / TechWWF_src / WWFSLM.c < prev   
C/C++ Source or Header  |  1994-04-07  |  2KB  |  74 lines

  1. #include <TechWWF.h>
  2. #include <WWFData.h>
  3.  
  4. struct MsgReq *mr;
  5.  
  6. extern struct CharSet *InCSet, *OutCSet;
  7.  
  8. void ConvString(__A0 UBYTE *, __A1 UBYTE *, __A2 UBYTE *);
  9.  
  10. struct FMsg *LoadMsg(struct AreaCfg *ac, ULONG MsgNum)
  11. {
  12.     struct LoadedMsg *LM;
  13.  
  14.     if(!mr) mr = calloc(sizeof(struct MsgReq), 1);
  15.     mr->Area = ac->AreaNr;
  16.     mr->MsgNum = MsgNum;
  17.     LM = SendBBSMsg(ID_LOADMSG, mr);
  18.     if(LM) return(LM->msg);
  19.     else return(NULL);
  20. }
  21.  
  22. void SaveMsg(struct FMsg *bmsg, struct AreaCfg *ac, ULONG MsgLen, UBYTE *MText, UBYTE *ToUser)
  23. {
  24.     if(!mr) mr = calloc(sizeof(struct MsgReq), 1);
  25.     mr->Area = ac->AreaNr;
  26.     mr->bmsg = bmsg;
  27.     mr->MsgLen = MsgLen;
  28.     mr->MText = MText;
  29.     mr->ToUser = ToUser;
  30.     SendBBSMsg(ID_SAVEMSG, mr);
  31. }
  32.  
  33. void UpdateMsg(struct FMsg *bmsg, struct AreaCfg *ac)
  34. {
  35.     if(!mr) mr = calloc(sizeof(struct MsgReq), 1);
  36.     mr->bmsg = bmsg;
  37.     mr->Area = ac->AreaNr;
  38.     SendBBSMsg(ID_UPDATEMSG, mr);
  39. }
  40.  
  41. struct MemMsg *F2MMsg(struct FMsg *fm)
  42. {
  43.     struct MemMsg *mmsg;
  44.     UBYTE *scan;
  45.  
  46.     mmsg = calloc(sizeof(struct MemMsg), 1);
  47.     memmove(mmsg, fm, sizeof(struct FMsg));
  48.     mmsg->AttFile = scan = (UBYTE *)(&fm[1]);
  49.     while(*scan) scan++;
  50.     mmsg->FromUser = ++scan;
  51.     while(*scan) scan++;
  52.     mmsg->ToUser = ++scan;
  53.     while(*scan) scan++;
  54.     mmsg->Subject = ++scan;
  55.     while(*scan) scan++;
  56.     mmsg->MsgText = ++scan;
  57.     if(OutCSet) {
  58.         mmsg = realloc(mmsg, sizeof(struct MemMsg) + strlen(mmsg->FromUser) + strlen(mmsg->ToUser) + strlen(mmsg->Subject) + strlen(mmsg->MsgText) + 10);
  59.         scan = (char *)&mmsg[1];
  60.         ConvString(mmsg->FromUser, scan, OutCSet->CnvTo);
  61.         mmsg->FromUser = scan;
  62.         while(*scan) scan++;
  63.         ConvString(mmsg->ToUser, ++scan, OutCSet->CnvTo);
  64.         mmsg->ToUser = scan;
  65.         while(*scan) scan++;
  66.         ConvString(mmsg->Subject, ++scan, OutCSet->CnvTo);
  67.         mmsg->Subject = scan;
  68.         while(*scan) scan++;
  69.         ConvString(mmsg->MsgText, ++scan, OutCSet->CnvTo);
  70.         mmsg->MsgText = scan;
  71.     }
  72.     return(mmsg);
  73. }
  74.